SOP-004:融合画像更新¶
第3层 · 跨维度综合画像 · 月度基线 + 事件插队 · 十年归档
概述¶
融合画像是"AI 定期产出的跨维度综合画像",整合教育、社交、成长档案、对话记录等多个维度,生成一份结构化的苏子桐当前状态快照。
不是替换原始素材——画像是只读引用,素材文件不动。
三层画像体系¶
| 层级 | 名称 | 更新者 | 频率 | 定位 |
|---|---|---|---|---|
| 深度画像 | 融合画像 | AI | 月度+事件插队 | 全面快照,有时间版本 |
| · 稳定层 | stable_profile.txt |
你 | 随融合画像更新 | 权威事实,注入对话(话题匹配) |
| · 动态层 | PowerMem 画像 | AI | 每次对话 | 实时印象,对话中自动学习 |
| 维度目录 | 各维度.md | 人工/AI | 不定期 | 原始素材,融合画像的数据源 |
周期规则¶
月度基线(雷打不动)¶
- 时间: 每月 1 日 凌晨生成
- 一年: 12 篇
- 十年: 120 篇(不足 10MB)
- 覆盖月份: 上月完整数据
事件插队(按需触发)¶
同样生成一份融合画像,不占用月度名额。
插队条件(至少满足其一): - 重大里程碑(第一次……) - 环境变化(搬家、转学、新学校) - 家庭事件(弟妹出生) - 用户主动要求"出一篇画像" - 雷达扫描发现某个维度变化量异常大(由人工判断)
命名规则: 融合画像_YYYY-MM_事件描述.md
为什么用月不用双周¶
- 6 岁孩子月月有变化,双周会有一半"没啥新东西"
- 事件插队补了双周的缺口——重大变化不用等整月
- 十年保持统一节奏:年龄越大变化越慢,月度刚好
命名规则¶
文件路径¶
融合画像/
├── 2026/
│ ├── 融合画像_2026-07.md ← 7月月度
│ ├── 融合画像_2026-09_上大班.md ← 🚨 事件插队
│ ├── 融合画像_2026-11.md ← 11月月度
│ └── ...
├── 2027/
│ └── ...
│
├── 融合画像_latest.md ← 始终复制最新的那篇
└── 索引.md ← AI自动维护的年表索引
格式¶
YYYY:年份(4位)MM:月份(2位,01-12)- 事件描述:简短、中文、不超 10 字
内容结构¶
每篇融合画像按以下模板生成:
# 融合画像 · YYYY年MM月
> 生成时间:YYYY-MM-DD
> 数据范围:YYYY-MM-01 ~ YYYY-MM-月末
## 📖 教育进展
- 阅读:当前级别/进度
- 学习:新增技能/知识点
- 课外:活动参与情况
## 🌟 成长里程碑
- 本月新增里程碑(首次……)
- 正在发展的能力
## 💬 社交与性格
- 社交关系变化
- 性格观察
- 情绪特点
## 🏷️ 标签聚合
- 本月高频标签
- 标签权重变化趋势
## 📝 AI 观察
> 跨维度综合分析——注意非重复性总结,而是"这些维度放在一起看到了什么"
归档与版本管理¶
- 所有融合画像按年份归档到
融合画像/YYYY/子目录 融合画像_latest.md始终指向最新那篇(快速查阅入口)融合画像/索引.md自动维护年表索引,格式:
# 融合画像索引
## 2026
| 日期 | 版本 | 类型 | 亮点 |
|------|------|------|------|
| 07-06 | 2026-07 | 月度 | 首篇 |
| 09-01 | 2026-09 | 事件:上大班 | |
## 2027
...
执行方式¶
- 月度基线: 由 Hermes Cron 触发(每月1日 5:00,随雷达批次)
- 事件插队: 用户发送"出一篇画像"指令时手动触发
反哺注入:融合画像→对话系统¶
生成画像后,运行生成脚本自动更新 stable_profile.txt,下一句对话自动生效。
更新步骤¶
- 生成新的融合画像后,运行生成脚本:
- 脚本 v2 特性:
- 读取
融合画像_latest.md,按维度提取结构化数据 - 保留融合画像未覆盖的话题(生活作息、兴趣爱好等不受影响)
- 自动过滤"待录入"等占位符
- 备份旧文件到
.bak - 更新后立即生效,不需要重启容器
自动触发(v2 新增)¶
| 触发方式 | 频率 | 说明 |
|---|---|---|
| 月度基线 cron | 每月1日 05:00 | 生成上月融合画像 + 运行生成器 + 重启 |
| 事件插队 | 雷达检测到里程碑 | 即时生成事件篇画像 + 运行生成器 + 重启 |
| 手动运行 | 你说"出一篇画像" | 即时生成 |
文件格式¶
<topic name="基本信息" keywords="年龄,几岁,生日,...">
苏子桐出生于2020年11月26日...
</topic>
<topic name="学习" keywords="RAZ,英语,阅读,...">
英语启蒙2024年11月开始...
</topic>
<topic name="_default">
简短概要(兜底用)
</topic>
- 每个
<topic>块有name(名称)和keywords(触发关键词,逗号分隔) - 用户说话命中关键词 → 注入对应块
_default块在无话题命中时兜底注入- 目前共 6 个话题块,在 SOP-001 中有完整列表
生成脚本位置¶
/opt/data/scripts/stable_profile_generator.py
支持参数:
- --profile 指定融合画像文件(默认读取 融合画像_latest.md)
旧的 inject_portrait_to_powermem.py¶
该脚本(切片 embedding → 写入向量库)已不再使用,保留在仓库但不执行。新机制由 dialogue.py 在每次对话时直接读取 stable_profile.txt 并做话题关键词匹配。
不变原则¶
- 永远不修改历史融合画像——它们是时间的真实切片
- 只有 latest.md 会覆盖——但 latest.md 不视为"历史"
- 索引.md 每次新增画像时更新
- 一份融合画像不与另一份合并
性能估计¶
| 指标 | 估算 |
|---|---|
| 每篇大小 | ~3-5KB markdown |
| 十年累计 | 12×10=120篇,~500KB-600KB |
| 含事件插队 | 预计 15-18 篇/年,十年 ~1MB |
| Obsidian 加载 | 无影响 |
变更日志¶
| 日期 | 版本 | 变更 |
|---|---|---|
| 2026-07-06 | v1 | 初版,月度+事件插队+十年归档规则 |
| 2026-07-09 | v2 | 画像体系重构:新增稳定层/dynamic层双层结构,反哺注入从向量切片改为stable_profile.txt文件直接注入 |
相关文档¶
| 方向 | 链接 |
|---|---|
| 🔗 上游 | SOP-003 雷达扫描与推送(事件触发) · SOP-002 生活库数据抽取联动(数据来源) |
| 🔗 下游 | SOP-001 小樱桃语音交互体系(反哺输出) |
| 🔗 产出 | 最新画像 · 画像索引 |
| 📝 变更 | 版本日志 |